package zhongbo.javaweb.instagram.web.cors;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 说明：配置SpringBoot拦截器
 * CORS 跨域放行配置
 *
 * @author 钟波notebook
 * @since 2020年02月28日 星期五 09:00:45
 */
@Slf4j
@Configuration
public class CorsConfigInterceptor extends WebMvcConfigurerAdapter {

    /**
     * 配置跨域访问
     *
     * @param registry 跨域注册
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        log.info("配置跨域访问拦截器");
        registry.addMapping("/**")
                .allowedMethods(CorsConfiguration.ALL)
                .allowedHeaders(CorsConfiguration.ALL)
                .allowedOrigins(CorsConfiguration.ALL)
                /*
                 * @see <a href="https://blog.csdn.net/iechenyb/article/details/80985763">80985763</a>
                 * 配置跨域OPTION请求有效时间,避免每次请求都发OPTION
                 * 如果浏览器调试状态选择了Disable Cache禁用缓存的话,该配置无效,关闭调试状态即可
                 * (此处描述有误,不配默认是1800秒,默认就有MaxAge配置,这里加大时间改为3600秒)
                 */
                .maxAge(3600L)
                .allowCredentials(true);
        super.addCorsMappings(registry);
    }

}
